// vim: set expandtab tabstop=4 shiftwidth=4 fdm=marker:

// Makefile for simple php extension function
// Author: terryye<hi@terryye.org> 


/* 避免本头文件被二次包含 */
#ifndef _tphp_demofunc_H_
#define _tphp_demofunc_H_

#ifdef __cplusplus
extern "C" {	//兼容C++
#endif
/* 引入PHP的头文件 */
# include "php.h"  //php的头文件
# include "php_ini.h"  //引入读取php.ini相关的头文件
#ifdef __cplusplus
}
#endif

/* 定义扩展对外提供的接口 */
ZEND_FUNCTION( tphp_demofunc_say_ini );
ZEND_FUNCTION( tphp_demofunc_set_gval );
ZEND_FUNCTION( tphp_demofunc_get_gval );

/* 我们需要新增MINIT和MSHUTDOWN函数*/
ZEND_MINIT_FUNCTION(tphp_demofunc);
ZEND_MSHUTDOWN_FUNCTION(tphp_demofunc);

/* global vars */
ZEND_BEGIN_MODULE_GLOBALS(tphp_demofunc)
    long tphp_demofunc_mynum;
	//通常不分配栈内存，因为使用了php的内存管理，能更加有效的管理内存。
    char * tphp_demofunc_mychar;
	zval * tphp_demofunc_myzval;

ZEND_END_MODULE_GLOBALS(tphp_demofunc)

#ifdef ZTS
#define TPHP_DEMOFUNC_G(v) TSRMG(tphp_demofunc_globals_id, zend_tphp_demofunc_globals *, v)
#else
#define TPHP_DEMOFUNC_G(v) (tphp_demofunc_globals.v)
#endif

#endif
